package com.eshore.norm.pojo.po;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 子网列表
 *
 * @author: v-chenjl62
 * @date: 2024/1/11 8:50
 */
@NoArgsConstructor
@Data
public class NormSubnetPO {

    @JsonProperty("subnets")
    private List<SubnetsDTO> subnets;

    @NoArgsConstructor
    @Data
    public static class SubnetsDTO {
        @JsonProperty("tenant_id")
        private String tenantId;
        @JsonProperty("subnetpool_id")
        private String subnetpoolId;
        @JsonProperty("enable_dhcp")
        private Boolean enableDhcp;
        @JsonProperty("ipv6_address_mode")
        private String ipv6AddressMode;
        @JsonProperty("enable_internet")
        private Boolean enableInternet;
        @JsonProperty("revision_number")
        private Integer revisionNumber;
        @JsonProperty("ipv6_ra_mode")
        private String ipv6RaMode;
        @JsonProperty("description")
        private String description;
        @JsonProperty("created_at")
        private String createdAt;
        @JsonProperty("allocation_pools")
        private List<AllocationPoolsDTO> allocationPools;
        @JsonProperty("dns_nameservers")
        private List<?> dnsNameservers;
        @JsonProperty("tags")
        private List<String> tags;
        @JsonProperty("network_id")
        private String networkId;
        @JsonProperty("host_routes")
        private List<?> hostRoutes;
        @JsonProperty("ip_version")
        private String ipVersion;
        @JsonProperty("updated_at")
        private String updatedAt;
        @JsonProperty("project_id")
        private String projectId;
        @JsonProperty("name")
        private String name;
        @JsonProperty("service_types")
        private List<?> serviceTypes;
        @JsonProperty("cidr")
        private String cidr;
        @JsonProperty("gateway_ip")
        private String gatewayIp;
        @JsonProperty("id")
        private String id;
        @JsonProperty("segment_id")
        private String segmentId;
        @JsonProperty("dns_publish_fixed_ip")
        private String dnsPublishFixedIp;

        @NoArgsConstructor
        @Data
        public static class AllocationPoolsDTO {
            @JsonProperty("start")
            private String start;
            @JsonProperty("end")
            private String end;
        }
    }
}
